---
title: lint-staged
description: Suorita Ultracite automaattisesti vaiheistetuille Git-tiedostoillesi lint-stagedin avulla
---

Ultracite integroituu saumattomasti [lint-staged](https://github.com/okonet/lint-staged) kanssa muotoillakseen ja lintatakseen koodisi automaattisesti ennen jokaista committia. Tämä varmistaa, että vain siisti ja oikein muotoiltu koodi päätyy repositorioosi.

## Mikä on lint-staged?

lint-staged on työkalu, joka suorittaa linterit ja formatterit vaiheistetuille Git-tiedostoille. Se on erityisen hyödyllinen, koska se:

- Käsittelee vain tiedostoja, joita ollaan todella commitoimassa
- Estää huonosti muotoillun koodin pääsyn repositorioosi
- Suorittuu nopeasti, koska tarkistaa vain muuttuneet tiedostot
- Integroituu täydellisesti Git-hookeihin

## Miten Ultracite käyttää lint-stagediä

Kun suoritat `npx ultracite init`, jos valitset lint-staged-vaihtoehdon, Ultracite suorittaa automaattisesti:

1. **Asentaa lint-stagedin** kehitysriippuvuudeksi
2. **Luo tai päivittää** lint-staged-konfiguraatiosi
3. **Määrittää muotoilutyökalun** ajettavaksi asiaankuuluville tiedostotyypeille

Oletuskonfiguraatio suorittaa `npx ultracite fix` näille tiedostotyypeille:
- JavaScript/TypeScript files (`.js`, `.jsx`, `.ts`, `.tsx`)
- JSON files (`.json`, `.jsonc`)
- CSS files (`.css`, `.scss`)
- Markdown files (`.md`, `.mdx`)

## Tuetut konfiguraatiomuodot

Ultraciten lint-staged-integraatio tukee kaikkia standardeja lint-staged-konfiguraatiomuotoja:

### package.json

```json title="package.json"
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
  }
}
```

### .lintstagedrc.json

```json title=".lintstagedrc.json"
{
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
}
```

### .lintstagedrc.js (CommonJS)

```javascript title=".lintstagedrc.js"
module.exports = {
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
};
```

### .lintstagedrc.mjs (ES Modules)

```javascript title=".lintstagedrc.mjs"
export default {
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
};
```

### .lintstagedrc.yaml

```yaml title=".lintstagedrc.yaml"
"*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}":
  - 'npx ultracite fix'
```

## Älykäs konfiguraatioiden yhdistäminen

Jos sinulla on jo lint-staged-konfiguraatio, Ultracite:

- **Tunnistaa** olemassa olevan konfiguraatioformaatin
- **Yhdistää** Ultraciten säännöt olemassa oleviin sääntöihisi
- **Säilyttää** räätälöidyt asetuksesi
- **Päivittää** tiedoston paikan päällä

Tämä tarkoittaa, että voit turvallisesti suorittaa `npx ultracite init`, vaikka sinulla olisi lint-staged jo käytössä.

## Miten se toimii

1. **Pre-commit-hook**: lint-staged suoritetaan ennen jokaista committia Huskyn kautta  
2. **Tiedostojen tunnistus**: Käsitellään vain vaiheistetut tiedostot, jotka vastaavat määriteltyjä kuvioita  
3. **Muotoilukomento**: `npx ultracite fix` suoritetaan jokaiselle vastaavalle tiedostolle  
4. **Automaattinen korjaus**: Biome korjaa ongelmat automaattisesti mahdollisuuksien mukaan  
5. **Uudelleenvaiheistus**: Korjatut tiedostot lisätään automaattisesti uudelleen commitin vaiheistukseen

## Manuaalinen konfigurointi

Jos haluat mukauttaa lint-staged-asetuksiasi, voit muokata konfiguraatiota alustamisen jälkeen:

```json title="package.json"
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": ["npx ultracite fix", "npm run test:unit"],
    "*.{json,jsonc}": ["npx ultracite fix"],
    "*.{css,scss}": ["npx ultracite fix", "npm run test:styles"],
    "*.{md,mdx}": ["npx ultracite fix"]
  }
}
```

## Komentojen integrointi

lint-staged-integraatio toimii Ultraciten komentorakenteen kanssa:

- **`npx ultracite fix`**: Suorittaa Biomen automaattikorjauksella (käytetään lint-stagedissä)  
- **`npx ultracite check`**: Suorittaa Biomen ilman automaattikorjausta (CI:tä / manuaalisia tarkistuksia varten)

## Vianmääritys

### Konfiguraatiota ei löydy
Jos näet virheilmoituksia puuttuvasta lint-staged-konfiguraatiosta:

```bash
npx ultracite init  # Suorita alustaminen uudelleen
```

### ESM/CommonJS-ongelmat
Ultracite tunnistaa automaattisesti projektityyppisi ja luo sopivan konfiguraatiomuodon:

- **ESM-projektit** (joissa `"type": "module"` package.json:ssä) saavat `.mjs`-konfiguraatiot  
- **CommonJS-projektit** saavat `.cjs`-konfiguraatiot  
- **Varavaihtoehto**: Luo `.lintstagedrc.json`, jos moduulitunnistus epäonnistuu

### Olemassa olevat konfiguraatiokonfliktit
Jos sinulla on monimutkaisia olemassa olevia konfiguraatioita, saatat joutua yhdistämään ne käsin:

1. Varmuuskopioi olemassa oleva lint-staged-konfiguraatiosi  
2. Suorita `npx ultracite init`  
3. Yhdistä manuaalisesti kaikki mukautetut säännöt, jotka haluat säilyttää

## Parhaat käytännöt

1. **Pidä se nopeana**: Suorita lint-stagedissä vain olennaiset tarkistukset  
2. **Käytä tarkkoja kuvioita**: Kohdista vain tiedostoihin, jotka tarvitsevat käsittelyn  
3. **Yhdistä CI:hin**: Käytä lint-stagediä nopeisiin paikallisiin tarkastuksiin, suorita täydellinen linttaus CI:ssä  
4. **Testaa asetuksesi**: Tee testicommit varmistaaksesi, että kaikki toimii

## Liittyvää

- [Husky-integraatio](/integration/husky) - Git-hookkien määritys  
- [Konfiguraatio](/configuration) - Biomen konfiguraatioasetukset  
- [Aloitus](/setup) - Projektin alustus